package com.ternnetwork.workflow.service;

import java.util.Map;
import org.springframework.data.domain.Pageable;
import com.ternnetwork.commons.model.http.BaseResponse;
import com.ternnetwork.workflow.dto.ProcessTaskQueryDto;

public interface ProcessTaskService {
	
	/**
	 * 分页查询
	 * @param pageable
	 * @param dto
	 * @return
	 */
	 BaseResponse findByPage(Pageable pageable,ProcessTaskQueryDto dto);
	
	
	
	
	/**
	 * 获取任务表单数据
	 * @param taskId
	 * @return
	 */
	 BaseResponse getTaskFormData(String taskId); 
	
	/**
	 * 领取任务
	 * @param taskId
	 * @param userName
	 * @return
	 */
	 BaseResponse claim(String taskId,String userName);
	
	/**
	 * 完成任务,保存表单数据
	 * @param taskId
	 * @param map 表单数据
	 * @return
	 */
	 BaseResponse complete(String taskId, Map<String, String[]> map);
	
	
	 
	 /**
	  * 查找任务历史
	  * @param pageable
	  * @param processInstanceId
	  * @return
	  */
	 BaseResponse findHistoricTaskInstanceByPage(Pageable pageable,String processInstanceId);
	 
	 
	 /**
	  * 设置代理（转处理）
	  * @param id
	  * @param assignee 当前受理人
	  * @param userId 接受代理的用户
	  * @return
	  */
	 BaseResponse delegateTask(String id,String assignee,String userId);
	 
	 
	 /**
	  * 取销任务领取
	  * @param id
	  * @param assignee
	  * @return
	  */
	 BaseResponse unclaim(String id,String assignee);

}
